home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #167 (1992)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #167 (1992)(Rhein-Sieg-Soft).adf
/
CDs
/
CDListe
< prev
next >
Wrap
Text File
|
1992-04-03
|
13KB
|
448 lines
REM ***********************************
REM *** CD/LP/MC-Verwaltung ***
REM ***********************************
REM *** (c) CoolMcCool-Soft ***
REM ****** V 1.6 ******
REM *** Version 1.0 - 10.11.1991 ***
REM *** Version 1.01 - 15.11.1991 ***
REM *** Version 1.50 - 18.11.1991 ***
REM *** Version 1.6 - 14.12.1991 ***
REM *** Version 1.7 - 04.01.1992 ***
REM ***********************************
LIBRARY "dos.library"
DECLARE FUNCTION Lock& LIBRARY
SCREEN 2, 640, 256, 2, 2
WINDOW 2,"CD-Verwaltung",(1,1)-(630,200),22,2
Variablen:
DIM IndexText$(200)
DIM IndexNr%(200)
Eingabe$ = "0"
Ende = 0
veraendert = 0
Nochmal$ = "j"
StandardName$ = "Liste"
Farben:
PALETTE 0,.6,.6,.6
PALETTE 1,.3,.3,.3
PALETTE 2,.8,.8,0
PALETTE 3,.1,.1,.1
Menue:
WHILE Ende <> 1
CLS
Stil& = 3
SchreibStil(Stil&)
LOCATE 2,27 : PRINT "Musik-Dateiverwaltung V1.7"
Stil& = 0 : SchreibStil(Stil&)
LOCATE 4,2 : PRINT "1. Datei bearbeiten"
LOCATE 5,2 : PRINT "2. Datei drucken"
LOCATE 6,2 : PRINT "3. Datei sortieren"
LOCATE 7,2 : PRINT "4. Index speichern"
LOCATE 8,2 : PRINT "5. Ende"
LOCATE 11,2 : INPUT "Ihre Eingabe : ",Eingabe$
WHILE VAL(Eingabe$) < 1 AND VAL(Eingabe$) > 5
LOCATE 11,19 : INPUT "",Eingabe$
WEND
ON VAL(Eingabe$) GOSUB DateiBearbeiten, Drucken, Sortieren, IndexSpeichern, Beenden
WEND
END
DateiBearbeiten:
GOSUB DateiNamenPruefen
CLS
DatensatzNummer = 1
IdN$ = DateiName$
Quit = 0
CALL Exists(IdN$, Exist&)
IF Exist& = 0 THEN
VDatensaetze = 0
ELSE
GOSUB SatzAnzahlPruefen
GOSUB IndexTabelleLesen
GET #1, 1
END IF
CLS
GOSUB Bildschirmausgabe
LOCATE 2,25 : PRINT "Eingabebildschirm"
WHILE Quit <> 1
LINE (144,39)-(463,48),1,bf
LINE (144,55)-(463,64),1,bf
LINE (144,71)-(239,80),1,bf
LINE (144,87)-(191,96),1,bf
LINE (144,103)-(255,112),1,bf
IF VDatensaetze > 0 THEN
COLOR 2,1
Stil& = 0
SchreibStil(Stil&)
LOCATE 6,19 : PRINT T$
LOCATE 8,19 : PRINT N$
LOCATE 10,19 : PRINT A$
LOCATE 12,19 : PRINT Z$
LOCATE 14,19 : PRINT S$
END IF
COLOR 2,1
LOCATE 4,48 : PRINT USING "####";DatensatzNummer
LOCATE 4,74 : PRINT USING "####";VDatensaetze
COLOR 1,0
LOCATE 20,2 : INPUT " Was nun (B)earbeiten/(E)rweitern/(V)or/(Z)urück/(Q)uit ?",Editieren$
IF LEFT$(UCASE$(Editieren$),1) = "E" OR LEFT$(UCASE$(Editieren$),1) = "B" THEN
IF LEFT$(UCASE$(Editieren$),1) = "E" THEN
DatensatzNummer = VDatensaetze + 1
InNr = DatensatzNummer
LINE (144,39)-(463,48),1,bf
LINE (144,55)-(463,64),1,bf
LINE (144,71)-(239,80),1,bf
LINE (144,87)-(191,96),1,bf
LINE (144,103)-(255,112),1,bf
COLOR 2,1
LOCATE 4,48 : PRINT USING "####";DatensatzNummer
LOCATE 4,74 : PRINT USING "####";VDatensaetze
COLOR 1,0
VDatensaetze = VDatensaetze + 1
ELSE
COLOR 2,1
LOCATE 6,19 : PRINT T$
LOCATE 8,19 : PRINT N$
LOCATE 10,19 : PRINT A$
LOCATE 12,19 : PRINT Z$
LOCATE 14,19 : PRINT S$
DummyTitel$ = T$
DummyNamen$ = N$
DummyArt$ = A$
DummyZeit$ = Z$
DummyStil$ = S$
COLOR 1,0
END IF
GOSUB Eingabe
LSET T$=Titel$
LSET N$=Namen$
LSET A$=Art$
LSET Z$=Zeit$
LSET S$=Stil$
GOSUB IndexTabelleEintragen
PUT #1,DatensatzNummer
veraendert = 1
ELSEIF LEFT$(UCASE$(Editieren$),1) = "V" THEN
IF DatensatzNummer + VAL(RIGHT$(Editieren$,4)) > VDatensaetze THEN
DatensatzNummer = VDatensaetze
ELSE
DatensatzNummer = DatensatzNummer + VAL(RIGHT$(Editieren$,4))
END IF
GET #1, DatensatzNummer
ELSEIF LEFT$(UCASE$(Editieren$),1) = "Z" THEN
IF DatensatzNummer - VAL(RIGHT$(Editieren$,4)) < 1 THEN
DatensatzNummer = 1
ELSE
DatensatzNummer = DatensatzNummer - VAL(RIGHT$(Editieren$,4))
END IF
GET #1, DatensatzNummer
ELSEIF LEFT$(UCASE$(Editieren$),1) = "Q" THEN
Quit = 1
REM IF VDatensaetze = DatensatzNummer THEN VDatensaetze = VDatensaetze - 1
END IF
WEND
CLOSE #1
RETURN
Drucken:
GOSUB DateiNamenPruefen
GOSUB SatzAnzahlPruefen
GOSUB IndexTabelleLesen
DatensatzNummer = 1
DruckNummer% = 1
gefunden = 0
InNr = 1
LOCATE 17,2 : PRINT "(D)rucker oder (B)ildschirm "
Drucken$ = INKEY$ : WHILE UCASE$(Drucken$) <> "D" AND UCASE$(Drucken$) <> "B" : Drucken$ = INKEY$ : WEND
IF UCASE$(Drucken$) = "B" THEN
Zeile = 4
GET #1,DatensatzNummer
WHILE InNr <= VDatensaetze
CLS
LOCATE 2,2 : PRINT " DS Titel Name"
LOCATE 3,1 : PRINT "-------------------------------------------------------------------------------"
WHILE InNr <= VDatensaetze AND Zeile < 20
DatensatzNummer = IndexNr%(InNr)
GET #1, DatensatzNummer
LOCATE Zeile,2 : PRINT USING "###";DruckNummer%
DruckNummer% = DruckNummer% + 1
LOCATE Zeile,6 : PRINT T$
LOCATE Zeile,37 : PRINT " "
LOCATE Zeile,40 : PRINT N$
Zeile = Zeile + 1
InNr = InNr + 1
WEND
LOCATE 21,2 : PRINT "(B)eenden / Weiter mit beliebiger Taste"
Taste$ = INKEY$ : WHILE UCASE$(Taste$) <> "B" AND Taste$ = "" : Taste$ = INKEY$ : WEND
IF UCASE$(Taste$) = "B" THEN InNr = VDatensaetze + 1
Zeile = 4
WEND
CLOSE #1
ELSEIF UCASE$(Drucken$) = "D" THEN
OPEN "PAR:" FOR OUTPUT AS #2
PRINT #2, CHR$(14); : REM Breitschrift EIN
PRINT #2, "CDListe"
PRINT #2, CHR$(27);"M"; : REM 12 Zeichen/Zoll
PRINT #2, CHR$(27);"x";CHR$(1); : REM Schönschrift-Modus EIN
PRINT #2, CHR$(13)
GOSUB DatumZeitUmwandlung
PRINT #2, "Vom: ";Datum$;" ";"Um: ";Zeit$
PRINT #2, CHR$(13)
PRINT #2, CHR$(13)
PRINT #2, CHR$(27);"G";
PRINT #2, " DS Titel Laenge Art"
PRINT #2, CHR$(13);
PRINT #2, CHR$(27);"-";CHR$(1); : REM Unterstreichen-Modus EIN
PRINT #2, " Name Stil "
PRINT #2, CHR$(27);"-";CHR$(0); : REM Unterstreichen-Modus AUS
PRINT #2, CHR$(27);"H";
WHILE InNr <= VDatensaetze
DatensatzNummer = IndexNr%(InNr)
GET #1, DatensatzNummer
PRINT #2, CHR$(13);
PRINT #2, USING "####";DruckNummer%;
DruckNummer% = DruckNummer% + 1
PRINT #2, CHR$(27);"G"; : REM Fettschrift-Modus EIN
PRINT #2, " ";T$;
PRINT #2, CHR$(27);"H"; : REM Fettschrift-Modus AUS
FOR i=LEN(T$)+6 TO 48
PRINT #2,SPC(1);
NEXT i
PRINT #2, Z$;
FOR i=(LEN(T$)+LEN(Z$)+6) TO 54
PRINT #2, SPC(1);
NEXT i
PRINT #2, A$
PRINT #2, CHR$(13);
PRINT #2, " ";N$;
FOR i=LEN(N$)+6 TO 48
PRINT #2, SPC(1)
NEXT i
PRINT #2, S$
PRINT #2, CHR$(13)
InNr = InNr + 1
WEND
END IF
CLOSE #1, #2
RETURN
IndexTabelleEintragen:
InNr = DatensatzNummer
IndexText$(InNr) = N$
IndexNr%(InNr) = DatensatzNummer
RETURN
IndexTabelleLesen:
IdN$ = IndexDateiName$ + CHR$(0)
CALL Exists (IdN$, Exist&)
InNr = 1
IF Exist& = 0 THEN
Text$ = "Bitte etwas Geduld,Indexdatei wird erstellt!"
CALL Meldung (Text$)
DatensatzNummer = 1
GET #1, DatensatzNummer
WHILE DatensatzNummer <= VDatensaetze
GET #1, DatensatzNummer
GOSUB IndexTabelleEintragen
DatensatzNummer = DatensatzNummer + 1
WEND
veraendert = 1
GOSUB IndexSpeichern
END IF
InNr = 1
OPEN IndexDateiName$ FOR INPUT AS #3
WHILE NOT EOF(3)
INPUT #3, IndexText$(InNr)
INPUT #3, IndexNr%(InNr)
InNr = InNr + 1
WEND
CLOSE #3
RETURN
Sortieren:
GOSUB DateiNamenPruefen
GOSUB SatzAnzahlPruefen
GOSUB IndexTabelleLesen
x = 2
FOR InNr = 1 TO VDatensaetze-1
FOR InNr2 = x TO VDatensaetze
IF IndexText$(InNr) > IndexText$(InNr2) THEN
SWAP IndexText$(InNr), IndexText$(InNr2)
SWAP IndexNr%(InNr), IndexNr%(InNr2)
END IF
NEXT InNr2
x = x + 1
NEXT InNr
veraendert = 1
CLOSE
RETURN
DateiNamenPruefen:
LOCATE 20,2 : PRINT "Dateiname / RETURN = ";StandardName$;" : ";
INPUT "",DateiName$
IF DateiName$ = "" THEN DateiName$ = StandardName$
WHILE LEN(DateiName$) < 3
LOCATE 17,2 : PRINT "Dateiname muß mindestens 3 Buchstaben lang sein!"
LOCATE 20,2 : PRINT "DateiName / RETURN = ";StandardName$;" : ";
LINE INPUT DateiName$
WEND
IF RIGHT$(DateiName$,4) <> ".cdl" THEN
IndexDateiName$ = DateiName$
DateiName$ = DateiName$ + ".cdl"
ELSE
DummyFeld = LEN(DateiName$)
DummyFeld = DummyFeld - 4
IndexDateiName$ = LEFT$(DateiName$,DummyFeld)
END IF
IndexDateiName$ = IndexDateiName$ + ".ndx"
OPEN "R",#1,DateiName$,112
FIELD #1, 40 AS T$, 40 AS N$, 12 AS A$, 6 AS Z$, 14 AS S$
StandardName$ = DateiName$
RETURN
SatzAnzahlPruefen:
VDatensaetze = INT(LOF(1)/112)
RETURN
Beenden:
IF veraendert = 1 THEN
Text$ = "IndexDatei wird gerade gespeichert!"
CALL Meldung (Text$)
GOSUB IndexSpeichern
END IF
Ende = 1
CLOSE
LIBRARY CLOSE
WINDOW CLOSE 2
SCREEN CLOSE 2
RETURN
IndexSpeichern:
DatensatzNummer = 1
IF veraendert = 0 THEN
Text$ = "Noch keine Datei bearbeitet / im Speicher!"
CALL Meldung (Text$)
ELSE
OPEN IndexDateiName$ FOR OUTPUT AS #3
FOR InNr = 1 TO VDatensaetze
WRITE #3, IndexText$(InNr)
PRINT #3, IndexNr%(InNr)
NEXT InNr
veraendert = 0
CLOSE #3
END IF
RETURN
Bildschirmausgabe:
COLOR 1,0
LINE (11,23)-(210,32),1,bf
LINE (10,22)-(211,33),3,b
LINE (9,23)-(9,32),3
LINE (212,23)-(212,32),3
LINE (227,23)-(411,32),1,bf
LINE (226,22)-(412,33),3,b
LINE (225,23)-(225,32),3
LINE (413,23)-(413,32),3
LINE (428,23)-(619,32),1,bf
LINE (427,22)-(620,33),3,b
LINE (426,23)-(426,32),3
LINE (621,23)-(621,32),3
LINE (143,38)-(464,49),3,b
LINE (142,39)-(142,48),3
LINE (465,39)-(465,48),3
LINE (143,54)-(464,65),3,b
LINE (142,55)-(142,64),3
LINE (465,55)-(465,64),3
LINE (143,70)-(240,81),3,b
LINE (142,71)-(142,80),3
LINE (241,71)-(241,80),3
LINE (143,86)-(192,97),3,b
LINE (142,87)-(142,96),3
LINE (193,87)-(193,96),3
LINE (143,102)-(256,113),3,b
LINE (142,103)-(142,112),3
LINE (257,103)-(257,112),3
COLOR 2,1
Stil& = 2
SchreibStil(Stil&)
LOCATE 4,3 : PRINT "Dateiname : ";DateiName$
LOCATE 4,30 : PRINT "Datensatznummer : "
LOCATE 4,55 : PRINT "vorh. Datensätze : "
COLOR 1,0
LOCATE 6,2 : PRINT "Titel :"
LOCATE 8,2 : PRINT "Name (S./Gr.) :"
LOCATE 10,2 : PRINT "Art :"
LOCATE 12,2 : PRINT "Länge :"
LOCATE 14,2 : PRINT "Stilrichtung :"
RETURN
Eingabe:
IF UCASE$(Editieren$) <> "B" THEN
LINE (144,39)-(463,48),1,bf
LINE (144,55)-(463,64),1,bf
LINE (144,71)-(239,80),1,bf
LINE (144,87)-(191,96),1,bf
LINE (144,103)-(255,112),1,bf
END IF
COLOR 2,1
LOCATE 6,19 : LINE INPUT Titel$
IF Titel$ = "" THEN
Titel$ = DummyTitel$
LOCATE 6,19 : PRINT Titel$
END IF
LOCATE 8,19 : LINE INPUT Namen$
IF Namen$ = "" THEN
Namen$ = DummyNamen$
LOCATE 8,19 : PRINT Namen$
END IF
DummyNamen$ = Namen$
LOCATE 10,19 : LINE INPUT Art$
IF Art$ = "" THEN
Art$ = DummyArt$
LOCATE 10,19 : PRINT Art$
END IF
DummyArt$ = Art$
LOCATE 12,19 : LINE INPUT Zeit$
IF Zeit$ = "" THEN
Zeit$ = DummyZeit$
LOCATE 12,19 : PRINT Zeit$
END IF
LOCATE 14,19 : LINE INPUT Stil$
IF Stil$ = "" THEN
Stil$ = DummyStil$
LOCATE 14,19 : PRINT Stil$
END IF
RETURN
DatumZeitUmwandlung:
Tag$ = MID$(DATE$,4,2)
Monat$ = MID$(DATE$,1,2)
Jahr$ = MID$(DATE$,7,4)
Datum$ = Tag$+"."+Monat$+"."+Jahr$
Stunden$ = MID$(TIME$,1,2)
Minuten$ = MID$(TIME$,4,2)
Sekunden$ = MID$(TIME$,7,2)
Zeit$ = Stunden$+":"+Minuten$+":"+Sekunden$
RETURN
SUB Exists (IdN$, Exist&) STATIC
Modus& = -2
Exist& = Lock&(SADD(IdN$), Modus&)
UnLock& Exist&
END SUB
SUB Meldung (Text$) STATIC
WHILE LEN(Text$) < 50
Text$ = Text$ + " "
WEND
LOCATE 17,2 : PRINT "Meldung: ";Text$
END SUB
SUB SchreibStil(Stil&) STATIC
POKE WINDOW(8)+56,Stil&
END SUB